<template>
  <el-drawer
    :visible.sync="drawer"
    direction="rtl"
    size="50%"
    :with-header="false"
    :width="700"
    :append-to-body="true"
  >
    <div class="drawer_box">
      <div class="drawer_title">
        <div class="drawer_t">
          <div class="drawer_t_l">
            <img
              class="drawer_t_l_img"
              src="/static/skin/herodoo/main/platform/home/img/piliangoumai.png"
              alt=""
            />
            创建勋章
          </div>
          <img
            class="drawer_t_r"
            src="/static/skin/herodoo/main/platform/home/img/guanbi.png"
            alt=""
            @click="drawer = false"
          />
        </div>
      </div>
      <div class="drawer_content">
        <div class="list-box">
          <div class="left">勋章名称：</div>
          <div class="right">
            <el-input v-model="form.Name" placeholder="勋章名称"></el-input>
          </div>
        </div>

        <div class="list-box">
          <div class="left">勋章图片：</div>
          <div class="right">
            <div class="tips">
              勋章可上传1张图片，图片不超过512KB，仅支持jpg、png格式
            </div>
            <imgUplode
              :list="form.fileList"
              @imgList="getImgsUrl"
              :octopus="octopus"
              num="1"
            >
            </imgUplode>
          </div>
        </div>

        <div class="list-box">
          <div class="left">获取方式：</div>
          <div class="right">
            <el-select
              v-model="form.TypeID"
              clearable
              placeholder="请选择获取方式"
            >
              <el-option
                v-for="item in funList"
                :key="item.ID"
                :label="item.Name"
                :value="item.ID"
              >
              </el-option>
            </el-select>
          </div>
        </div>

        <div class="list-box">
          <div class="left">获取条件：</div>
          <div class="right">
            <el-radio
              v-model="form.RuleID"
              :label="item.ID"
              v-for="item in ruleList"
              :key="item.ID"
              >{{ item.Name }}</el-radio
            >
          </div>
        </div>
        <div class="list-box">
          <div class="left">是否启用：</div>
          <div class="right">
            <el-radio v-model="form.Status" :label="1">是</el-radio>
            <el-radio v-model="form.Status" :label="0">否</el-radio>
          </div>
        </div>
      </div>

      <div class="button_list">
        <button @click="save()">发布</button>
      </div>
    </div>
  </el-drawer>
</template>

<script>
import imgUplode from '@/components/Components/imgUpdate.vue'
export default {
  name: "cat_dialog",
  components: {
    imgUplode
  },
  props: {},
  data() {
    return {
      octopus: this.$parent.octopus,
      drawer: false,
      isEdit: true,
      funList: [],
      ruleList: [],
      form: {
        ID: "",
        Name: "",
        TypeID: "",
        fileList: [],
        RuleID: 1,
        Status: 0
      },
      rules: {
        Name: { required: true, message: "请输入勋章名称" },
        fileList: { required: true, message: "请上传一张勋章图片" },
        TypeID: { required: true, message: "请选择获取方式" }
      }
    };
  },
  created() {
    this.api_getInfo(1316, "funList");
    this.api_getInfo(1317, "ruleList");
  },
  watch: {},
  methods: {
    drawerOpen(data = null, type = "CREATE") {
      this.drawer = true;
      this.isEdit = type;
      if (!data) {
        this.form.ID = "";
        this.form.Name = "";
        this.form.fileList = [];
        this.form.TypeID = "";
        return;
      } else {
        this.form.ID = data.ID;
        this.form.Name = data.Name;
        this.form.fileList = JSON.parse(data.PicturePath);
        this.form.TypeID = data.TypeID;
        this.form.RuleID = data.RuleID;
        this.form.Status = data.StatusID;
      }
    },
    getImgsUrl(fileList) {
      this.$set(this.form.fileList, 0, fileList[0]);
    },
    save() {
      if (!this.octopus.tools.verify(this.form, this.rules)) {
        return;
      }
      this.$confirm(`确定保存这个主题推荐吗?`, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        // type: 'warning'
        center: true
      })
        .then(res => {
          this.update_api_1282();
        })
        .catch(() => {
          console.log("取消了");
        });
    },
    update_api_1282() {
      let cellDate = [
        { name: "Name", defaultValue: this.form.Name }, // Name
        {
          name: "PicturePath",
          defaultValue: JSON.stringify(this.form.fileList)
        }, // PicturePath
        { name: "RuleID", defaultValue: this.form.RuleID }, // RuleID
        { name: "Status", defaultValue: this.form.Status }, // Status
        { name: "TypeID", defaultValue: this.form.TypeID } // TypeID
      ];
      if (this.isEdit == "CREATE") {
        cellDate.push({
          name: "CreateTime",
          defaultValue:
            new Date().toJSON().substring(0, 10) +
            " " +
            new Date().toTimeString().substring(0, 8)
        });
        cellDate.push({
          name: "CreateUserID",
          defaultValue: this.octopus.passport.id
        });
      } else {
        cellDate.push({
          name: "UpdateTime",
          defaultValue:
            new Date().toJSON().substring(0, 10) +
            " " +
            new Date().toTimeString().substring(0, 8)
        });
        cellDate.push({
          name: "UpdateUserID",
          defaultValue: this.octopus.passport.id
        });
      }
      this.octopus.request.api.post(
        "/Octopus/Engine/Item",
        {
          id: 1282,
          type: this.isEdit,
          value: this.isEdit == "CREATE" ? "" : this.form.ID,
          cellData: cellDate,
          paramData: {}
        },
        data => {
          if (data.status.code == 200) {
            this.drawer = false;
            this.octopus.tips.success("操作成功。");
            this.$emit("reload");
          } else {
            this.octopus.tips.error(data);
          }
        }
      );
    },
    api_getInfo(ID, ListID) {
      this.octopus.request.api.post(
        "/Octopus/Engine/List",
        {
          id: ID,
          cellData: [
            { name: "ID" }, // ID
            { name: "Name" } // Name
          ],
          paramData: {}
        },
        data => {
          if (data.status.code == 200) {
            this[ListID] = data.content.queryData;
          } else {
            this.octopus.tips.error(data);
          }
        }
      );
    }
  }
};
</script>
<style scoped>
.drawer_box {
  padding: 3rem 0.8rem 3rem 0;
  height: calc(100% - 5rem);
  display: flex;
  flex-direction: column;
}

.drawer_title {
  box-shadow: 0px 5px 5px rgb(230 228 228 / 30%);
  padding-bottom: 1rem;
  font-size: 1.6rem;
}

.drawer_t {
  padding: 0 2.8rem;
  display: flex;
  justify-content: space-between;
}

.drawer_t_l {
  display: flex;
  align-items: center;
  font-size: 2rem;
  font-weight: bold;
}

.drawer_t_l_img {
  width: 2.8rem;
  margin-right: 1rem;
}

.drawer_t_r {
  width: 3rem;
  height: 3rem;
  cursor: pointer;
}

.button_box {
  margin-top: 1rem;
  padding: 0 3rem;
  display: flex;
}

.drawer_content {
  overflow-y: auto;
  margin-top: 1.5rem;
  height: calc(100vh - 11rem);
  padding: 0 3rem;
  width: 100%;
  padding-bottom: 1rem;
}

.drawer_content .title {
  font-size: 1.8rem;
  font-weight: bold;
}

.drawer_content .driver-title {
  margin-top: 1em;
}

.content-box {
  display: flex;
  align-items: center;
  margin: 2rem 0 2rem 2em;
}

.mt-10 {
  margin-top: 10rem;
}

.content-box .label {
  width: 25%;
  font-size: 1.6rem;
}

.content-box .label .label-bold {
  font-size: 1.8rem;
  font-weight: bold;
}

.content-box .desc {
  flex: 1;
  font-size: 1.6rem;
}

.list-box {
  display: flex;
  width: 100%;
  justify-content: space-between;
}

.list-box {
  line-height: 4rem;
  margin-top: 2rem;
}

.list-box .left {
  width: 20%;
  font-size: 1.5rem;
}

.list-box .right {
  width: 80%;
}

.button_list {
  margin-top: 1rem;
  display: flex;
  justify-content: end;
  position: absolute;
  background-color: #ffff;
  bottom: 1rem;
  width: calc(100% - 7rem);
}

.button_list button {
  border: none;
  height: 4rem;
  width: 12rem;
  border-radius: 1rem;
  margin-left: 1rem;
  color: #ffff;
  background-color: #f78c53;
  cursor: pointer;
}

.list-box .right .add_content {
  height: 4.5rem;
  line-height: 4.5rem;
  border: 1px dashed #f87338;
  display: inline-block;
  padding: 0 1.5rem;
  cursor: pointer;
  border-radius: 0.5rem;
}

.list-box .right .el-input {
  width: 100%;
  height: 4.5rem;
}

.list-box .right .add_content i {
  color: #f87338;
  font-weight: 700;
  margin-right: 0.5rem;
}
</style>
